2.5.2 RIGHT JOIN
Die Existenz eines LEFT JOIN
legt die Vermutung nahe, dass es auch einen
RIGHT JOIN
gibt. Dieser arbeitet genau so wie der LEFT JOIN
nur mit
vertauschten Tabellen. Es werden also alle Datensätze der Tabelle auf der
rechten Seite
verwendet und – soweit möglich – mit den
Datensätzen der linken Seite verbunden.
[21]SELECT vorname, name, abteilungsname
FROM tbl_abteilung
RIGHT JOIN tbl_mitarbeiter
ON tbl_abteilung.abteilung_ID = tbl_mitarbeiter.abteilung_ID
Hier würden nun alle Mitarbeiter angezeigt und denen die jeweilige Abteilung zugeordnet. Es würden auch Mitarbeiter angezeigt, zu denen kein passender Datensatz in der Tabelle Abteilungen existiert. Solche Datensätze sind zu Testzwecken mit in die Datenbank eingefügt worden.
Der RIGHT JOIN
lässt sich leicht durch den LEFT JOIN
ersetzen, indem
die Tabellen in eine andere Reihenfolge gebracht werden. Entscheidend für den Unterschied
von LEFT JOIN
und RIGHT JOIN
ist, wo die Tabelle in der SQL - Anweisung
bezüglich des Schlüsselworts JOIN
(links oder rechts) steht. Es gilt also:
Tabelle_1 LEFT JOIN Tabelle_2
1. Liefert das gleiche Ergebnis wie Tabelle_2 RIGHT JOIN Tabelle_1.
2. Im Ergebnis erscheinen immer alle Datensätze von Tabelle_1, dort wo es keinen Datensatz in Tabelle_2 mit übereinstimmendem Schlüssel gibt werden die Felder mit NULL gefüllt.
SQL unterstützt zusätzlich zu den drei Bezeichnern INNER JOIN
, LEFT
JOIN
und RIGHT JOIN
noch drei weitere – den NATURAL JOIN
, den STRAIGHT
JOIN
und den CROSS JOIN
. Die ersten drei JOINs sind die wichtigsten.
Aus Gründen der Vollständigkeit sollen sie hier aber einmal genannt werden. Genauer werden
wir an dieser Stelle noch auf den CROSS JOIN
eingehen.
Übrigens: Lassen Sie sich von dem Wort JOIN
nicht verwirren. Einige Begriffe
in SQL sind recht nichtssagend und teilweise schwer zu übersetzen.
Sie sollten sich merken, was ein JOIN
tut und wie er eingesetzt werden
kann. Wenn Sie also dieses Wort lesen oder hören, sollten Sie
sofort wissen, dass es sich um eine Verknüpfung von Tabellen
über bestimmte (Schlüssel-)Attribute handelt.